package com.tangyuan.user.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.tangyuan.common.result.Result;
import com.tangyuan.model.activity.UserActivity;
import com.tangyuan.model.activity.UserHonouredGuest;
import com.tangyuan.vo.RuleDetailsVo;

import java.io.IOException;

/**
 * @Description: user_activity
 * @Author: jeecg-boot
 * @Date:   2024-03-20
 * @Version: V1.0
 */
public interface IUserActivityService extends IService<UserActivity> {

    Result<Object> publishActivity(Long userId, UserActivity userActivity);

    Result<Object> cancelActivity(Long userId,Long id);

    Result<Object> editGuest(Long userId, UserHonouredGuest userHonouredGuest);

    Result<Object> participateActivity(Long userId);

    Result<Object> myVote(Long userId);

    Result<Object> myActivity(Long userId);

    Result<Object> previewWithPoster(Long userId,Long id);


    Result checkActiveIsBand(Long userId,Long type);

    Result publishActive(Long userId,Long id);

    Result<Object> ruleDetails(Long id, RuleDetailsVo ruleDetailsVo);

    Result<Object> getActivity(Long userId,Integer pageNum,Integer pageSize);

    Result<Object> cancelEnroll(Long userId, Long id) throws IOException;

    Result<Object> getActiveById(Long userId, Long id);

    Result<Object> completeEnroll(Long userId, Long id);

    Result<Object> getHonouredGuestByVoteNum(Integer pageNum, Integer pageSize, Long userId, UserActivity userActivity);

    Result<Object> getHonouredGuestByNumber(Integer pageNum, Integer pageSize, Long userId, UserActivity userActivity);

    Result<Object> getVoteById(Long voteId);
}
